// 头文件保护宏，防止重复包含。
// 当编译器第一次遇到这个文件时，__START_MPLAYER_H__ 未定义，所以 #ifndef 为真，
// 后面的代码会被处理，并且 __START_MPLAYER_H__ 会被定义。
// 如果之后再次包含此文件，#ifndef __START_MPLAYER_H__ 会为假，内容被跳过。
#ifndef __START_MPLAYER_H__
#define __START_MPLAYER_H__

// 函数原型 (Function Prototype) 或 函数声明 (Function Declaration)
// 功能: 声明 mplayer_play 函数，使得其他 .c 文件在包含了这个头文件之后，
//       可以知道这个函数的存在、名称、参数类型和返回类型，从而能够正确地调用它。
// extern 关键字: "external" 的缩写。在这里用于函数声明时，表示函数的定义
//               (即函数的实际代码实现) 位于另一个源文件中 (在此项目中是 start_mplayer.c)。
//               链接器在链接阶段会负责找到这个函数的定义并将其链接到调用它的地方。
// void: 表示此函数不返回任何值。
// mplayer_play: 函数的名称。
// (char *song_path): 函数的参数列表。
//   char*: 表示参数类型是一个指向字符的指针 (通常用于传递字符串)。
//   song_path: 参数的名称，它指向包含歌曲文件路径的字符串。
extern void mplayer_play(char * song_path);

#endif // __START_MPLAYER_H__  // 结束 #ifndef 条件编译块。